// ## 2. 数组拍平
// - 1. flat
// console.log(arr.flat(arr))
// - 2. toString
// console.log(arr.toString().split(',').map(item => Number(item)))
// - 3. stringify
// JSON.stringfy(arr).replace(/\[|\]/g,'').split(',').map(item => Number(item))
// - 4. concat
// while(Array.some(item => Array.isArray(item))) {
//     arr = [].concat(...arr)
// }

// 5. 
Array.prototype.myFlat = function (){
    let result = []
    let _this = this; // 原始数组
    let maxDepth = 1
    function _flat(arr, depth = 1){
        if (depth > maxDepth) {
            maxDepth = depth
        }
        for(let i = 0; i< arr.length; i++){
            let item = arr[i]
            if (Array.isArray(item)){
                _flat(item, depth + 1)
            } else {
                result.push(item)
            }
        }
    }
    _flat(this)
    return result
} 